In the traditional approach to providing computing service, a service user requests computing service from a service provider. In most cases, the service user has a direct relationship with the service provider, which may include contracts and service level agreements for specific computing services. The service provider manages the computing resources such as processing, storage, networking, and the like, on a resource level, using resource management tools such as load balancers, resource managers, and the like. These tools are optimized to allow for a level of high resource utilization in order to maximize profit. The service user pays for computing service power based on resource usage and a price structure contracted with the provider. The resource usage and price structure is more or less static in nature, and may be covered by the service provider for peak-level demands based on fixed contracts with the service user.
In a grid-computing environment, however, the relationship between service user and service provider changes, due to the dynamic and heterogeneous nature of the environment. More specifically, a direct relationship to a specific service provider may not continue to be the standard case.
Grid computing provides efficient and flexible use of resources, which reduces costs and opens new opportunities. Today, the application of grid computing is found primarily in areas that require large-scale computation, such as risk analysis in finance, digital rendering in telecommunication and media, mechanical and electrical design, finite element analysis, failure analysis in manufacturing, reservoir analysis in energy planning, and so on. However, in addition to such computationally intense activities, a demand for grid computing is now emerging in the commercial information technology business.
All these applications create a demand for resources on the grid. Fundamentally, these demands draw on the lowest level processors, storage, and bandwidth, all of which are called on to phase dynamic requests. Additionally, in its most general form, a grid is a large, shared, heterogeneous, resource pool that crosses intra-and/or inter-organizational boundaries, and is not limited to peer-to-peer relationships.
The concept of coupling geographically distributed computing resources for solving large-scale computing problems is becoming increasingly popular, and is often called grid computing. The management of resources in the grid environment is becoming complex, as these resources may be geographically distributed, heterogeneous in nature, and owned by different individuals and organizations that each have their own resource management policies, access process, and cost models. In addition, a shift from the large-scale computational grid environment where users request specific resources for a given amount of time to a more service oriented grid environment where grid users request services requires a new approach for scheduling, making reservations, and processing.
Most of the solutions known today which try to resolve the resource allocation and job scheduling problems are resource-centric. This means that the scheduling and allocation process works on a low level for specific resources. These mechanisms are mainly implemented in load balancer and resource manager components as part of a homogeneous system environment, with the main focus being to share these resources among multiple service users. Several of these approaches have included auction mechanisms to assist in the allocation of computing resources.
Most of the related work in grid computing dedicated to resource management and scheduling problems adopts a conventional style, where a scheduling component decides which jobs are to be executed at which sites based on predetermined cost functions. Such cost functions are often driven by resource-centric parameters that enhance system throughput and utilization rather than improve profit. They assume that resources all cost the same and that the results of all applications have the same value, even though this may not be the case in reality. The service user does not want to pay the highest price, of course, but wants instead to negotiate a better price based on demand, supply, market value, priority, and available budget. Also, the results of different applications have different values at different times based on different operational risks for processing.
In a grid environment, a service user may be in competition with other service users, and a service provider may be in competition with other service providers. A new research area called grid economics concerns these aspects. Grid economics attempts to provide economically sound business analysis and software products, intended to help organizations manage the financial aspects of shared information technology (IT) resources and services. This new field draws upon the knowledge and techniques of several fields such as e-commerce (e-auctions, e-marketplaces), market design (common practices in established markets), stochastic optimization (portfolio theory, derivatives, real options), commodity markets (pricing and risk for electricity, oil, etc.), network bandwidth pricing, and market-based control (artificial economies).
The key to any acceptable solution is a business driven approach, which needs to answer questions like: which service request gets what, when, how much, and what service guarantee? These are followed by questions concerning the value of pre-reserved service slots in the future, including the question of how this value will change as a function of time. Clearly, today's solutions that concern lower level grid products specified by CPU, memory, and bandwidth are not adequate to answer these questions.
Standalone auction mechanisms to allocate computing resources as services are not sufficient to solve the scheduling and reservation problems, although an auction can be used as a guide to finding an actual market price. This is necessary but not sufficient to optimize the profit for a service provider.
Current implementations of grid brokers use some type of auction mechanisms lead by the service user (jobs bidding for resources) to optimize the budget and the resource allocation. From a service provider's perspective, however, a modified auction mechanism lead by the service provider (resources bidding for jobs) is needed to optimize profit.
Standard auction mechanisms face performance issues during the negotiation phase due to the large number of auction runs and re-tries necessary to handle individual jobs. This leads to a tremendous overhead in communication and poor response times.